// 文章模块的接口

import http from '@/utils/request'

/**
 * 不感兴趣接口
 * @param target 不喜欢的文章id
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqDisLikeArticle = (target) => {
  return http({
    method: 'post',
    url: '/v1_0/article/dislikes',
    data: {
      target
    }
  })
}

/**
 * 举报文章
 * @param target 举报的文章id
 * @param type 举报类型：可在'@/constant/report.js'文件中查看
 * @param remark 其他问题 的附加说明
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqReportArticle = (target, type) => {
  return http({
    method: 'post',
    url: '/v1_0/article/reports',
    data: {
      target,
      type,
      remark: 'test'
    }
  })
}

/**
 * 根据文章编号来获取文章详情
 * @param id 文章编号
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqGetArticleDetail = (id) => {
  return http({
    method: 'GET',
    url: '/v1_0/articles/' + id
  })
}

/**
 * 取消点赞
 * @param id 文章编号
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqDeleteLike = (id) => {
  return http({
    method: 'delete',
    url: '/v1_0/article/likings/' + id
  })
}

/**
 * 添加点赞
 * @param id 文章编号
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqAddLike = (id) => {
  return http({
    method: 'post',
    url: '/v1_0/article/likings',
    data: {
      target: id
    }
  })
}

/**
 * 取消不喜欢 文章编号
 * @param id
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqDeleteDisLike = id => {
  return http({
    method: 'delete',
    url: '/v1_0/article/dislikes/' + id
  })
}

/**
 * 添加不喜欢
 * @param id 文章编号
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqAddDisLike = id => {
  return http({
    method: 'post',
    url: '/v1_0/article/dislikes',
    data: {
      target: id
    }
  })
}

/**
 * 获取文章的评论
 * @param type a表示对文章的评论 ,c表示对评论的回复
 * @param articleId 文章编号
 * @param offset 获取评论数据的偏移量，值为评论id，表示从此id的数据向后取，不传表示从第一页开始读取数据
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqGetComments = (type, articleId, offset) => {
  return http({
    method: 'get',
    url: '/v1_0/comments',
    params: {
      type,
      source: articleId,
      offset
    }
  })
}

/**
 * 发布评论
 * @param content 评论内容
 * @param articleId 文章id，对评论内容发表回复时，需要传递此参数，表明所属文章id。对文章进行评论，不要传此参数。
 * @returns {Promise<AxiosResponse<any>>}
 */
export const reqAddComment = (articleId, content) => {
  return http({
    method: 'post',
    url: '/v1_0/comments',
    data: {
      target: articleId,
      content
    }
  })
}
